package com.water.devtool;

import java.io.File;

import com.watermud.util.FileUtil;
import com.watermud.util.StringUtil;

public class ProcedureUtil {
	public static String getProcefureBody(String model, String name) {
		StringBuilder str = new StringBuilder();

		str.append("  /**").append(StringUtil.getLineSeparator());
		str.append("     *  描述：初始化设备--" + name).append(
				StringUtil.getLineSeparator());
		str.append("     *  作者：孙立华").append(StringUtil.getLineSeparator());
		str.append("      *  改动历史：").append(StringUtil.getLineSeparator());
		str.append("      *    ").append(StringUtil.getLineSeparator());
		str.append("      *").append(StringUtil.getLineSeparator());
		str.append("      *").append(StringUtil.getLineSeparator());
		str.append("      **/").append(StringUtil.getLineSeparator());
		str.append("       PROCEDURE p_dev_init_" + model + "(").append(
				StringUtil.getLineSeparator());
		str.append(" out_code   OUT INT,")
				.append(StringUtil.getLineSeparator());
		str.append("    out_msg    OUT VARCHAR2) IS").append(
				StringUtil.getLineSeparator());
		str.append("   v_logic_dev_unit_type  VARCHAR2(32) := 'detectUnit';")
				.append(StringUtil.getLineSeparator());
		str.append("  v_logic_dev_model_type VARCHAR2(32) := '" + model + "' ;")
				.append(StringUtil.getLineSeparator());
		str.append("   BEGIN").append(StringUtil.getLineSeparator());

		str.append("    FOR c IN (SELECT *").append(
				StringUtil.getLineSeparator());
		str.append("   FROM t_logic_dev_dict").append(
				StringUtil.getLineSeparator());
		str.append(
				"   WHERE logic_dev_type = v_logic_dev_model_type and model = cs_model)")
				.append(StringUtil.getLineSeparator());
		str.append("   LOOP").append(StringUtil.getLineSeparator());

		str.append("  delete from t_logic_dev_dict where SBZRID = c.code ;")
				.append(StringUtil.getLineSeparator());

		str.append("  END LOOP;").append(StringUtil.getLineSeparator());

		str.append("  out_code := 1;").append(StringUtil.getLineSeparator());
		str.append("   EXCEPTION").append(StringUtil.getLineSeparator());
		str.append("   WHEN OTHERS THEN").append(StringUtil.getLineSeparator());
		str.append("   out_code := -1;").append(StringUtil.getLineSeparator());
		str.append("  out_msg  := '初始化设备--" + name + "出错：' || SQLERRM;")
				.append(StringUtil.getLineSeparator());

		str.append("   END p_dev_init_" + model + ";").append(
				StringUtil.getLineSeparator());
		return str.toString();
	}

	public String getProcedureDifine(String model, String name) {
		StringBuilder str = new StringBuilder();

		str.append(" /**").append(StringUtil.getLineSeparator());
		str.append(" *  描述：初始化设备--" + name).append(
				StringUtil.getLineSeparator());
		str.append("  *  作者：孙立华").append(StringUtil.getLineSeparator());
		str.append("   *  改动历史：").append(StringUtil.getLineSeparator());
		str.append("   *    ").append(StringUtil.getLineSeparator());
		str.append("  *").append(StringUtil.getLineSeparator());
		str.append("   *").append(StringUtil.getLineSeparator());
		str.append("   **/").append(StringUtil.getLineSeparator());
		str.append("  PROCEDURE p_dev_init_" + model + "(out_code OUT INT,")
				.append(StringUtil.getLineSeparator());
		str.append("  out_msg  OUT VARCHAR2);").append(
				StringUtil.getLineSeparator());
		return str.toString();
	}

	public String getProcedureExecute(String model, String name) {
		StringBuilder str = new StringBuilder();

		str.append("    -- 执行存储过程初始化：" + name).append(
				StringUtil.getLineSeparator());
		str.append(
				"pkg_be_init_dx.p_dev_init_" + model + "(out_code ,out_msg);")
				.append(StringUtil.getLineSeparator());

		return str.toString();
	}

	public static void main(String[] args) {
		String content = FileUtil.getContent(new File("F:/4.xml"));
		System.out.println(content);
		String[] temp = content.split(StringUtil.getLineSeparator());
		ProcedureUtil util = new ProcedureUtil();

		// for (String str : temp) {
		// String[] modles = str.split("\t");
		// System.out.println(util.getProcedureDifine(modles[1], modles[0]));
		// }

		// getProcedureDifine getProcefureBody

		for (String str : temp) {
			String[] modles = str.split("\t");
			System.out.println(util.getProcedureExecute(modles[1], modles[0]));
		}

	}
}
